vector:
  enabled: true
  ## Default values for Vector
  ## See Vector helm documentation to learn more:
  ## https://vector.dev/docs/setup/installation/package-managers/helm/

  # nameOverride -- Override name of app
  nameOverride: ""

  # fullnameOverride -- Override the full qualified app name
  fullnameOverride: ""

  # role -- Role for this Vector (possible values: Agent, Aggregator, Stateless-Aggregator)
  ## Ref: https://vector.dev/docs/setup/deployment/roles/
  ## Each role is created with the following workloads:
  ## Agent - DaemonSet
  ## Aggregator - StatefulSet
  ## Stateless-Aggregator - Deployment
  role: "Aggregator"

  # rollWorkload -- Add a checksum of the generated ConfigMap to workload annotations
  rollWorkload: true

  # commonLabels -- Add additional labels to all created resources
  commonLabels: {}

  ## Define the Vector image to use
  image:
    # image.repository -- Override default registry + name for Vector
    repository: timberio/vector
    # image.pullPolicy -- Vector image pullPolicy
    pullPolicy: IfNotPresent
    # image.pullSecrets -- Agent repository pullSecret (ex: specify docker registry credentials)
    ## Ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
    pullSecrets: []
    # image.tag -- Vector image tag to use
    # @default -- Chart's appVersion
    tag: ""
    # image.sha -- Vector image sha to use
    sha: ""

  # replicas -- Set the number of Pods to create
  ## Valid for Aggregator and Stateless-Aggregator
  replicas: 1

  # podManagementPolicy -- Specify the podManagementPolicy for the Aggregator role
  ## Valid for Aggregator role
  podManagementPolicy: OrderedReady

  ## Create a Secret resource for Vector to use
  secrets:
    # secrets.generic -- Each Key/Value will be added to the Secret's data key, each value should be raw and NOT base64 encoded
    ## Any secrets can be provided here, it's commonly used for credentials and other access related values.
    ## NOTE: Don't commit unencrypted secrets to git!
    generic: {}
      # my_variable: "my-secret-value"
      # datadog_api_key: "api-key"
      # awsAccessKeyId: "access-key"
      # awsSecretAccessKey: "secret-access-key"

  ## Configure a HorizontalPodAutoscaler for Vector
  ## Valid for Aggregator and Stateless-Aggregator roles
  autoscaling:
    # autoscaling.enabled -- Enabled autoscaling for the Aggregator and Stateless-Aggregator
    enabled: false
    # autoscaling.minReplicas -- Minimum replicas for Vector's HPA
    minReplicas: 1
    # autoscaling.maxReplicas -- Maximum replicas for Vector's HPA
    maxReplicas: 10
    # autoscaling.targetCPUUtilizationPercentage -- Target CPU utilization for Vector's HPA
    targetCPUUtilizationPercentage: 80
    # autoscaling.targetMemoryUtilizationPercentage -- (int) Target memory utilization for Vector's HPA
    targetMemoryUtilizationPercentage:
    # autoscaling.customMetric -- Target a custom metric
    customMetric: {}
      #  - type: Pods
      #    pods:
      #      metric:
      #        name: utilization
      #      target:
      #        type: AverageValue
      #        averageValue: 95

  podDisruptionBudget:
    # podDisruptionBudget.enabled -- Enable a PodDisruptionBudget for Vector
    enabled: false
    # podDisruptionBudget.minAvailable -- The number of Pods that must still be available after an eviction
    minAvailable: 1
    # podDisruptionBudget.maxUnavailable -- (int) The number of Pods that can be unavailable after an eviction
    maxUnavailable:

  rbac:
    # rbac.create -- If true, create and use RBAC resources. Only valid for the Agent role
    create: true

  psp:
    # psp.create -- If true, create a PodSecurityPolicy resource. PodSecurityPolicy is deprecated as of Kubernetes v1.21, and will be removed in v1.25
    ## Intended for use with the Agent role
    create: false

  serviceAccount:
    # serviceAccount.create -- If true, create ServiceAccount
    create: true
    # serviceAccount.annotations -- Annotations to add to the Vector ServiceAccount
    annotations: {}
    # serviceAccount.name -- The name of the ServiceAccount to use.
    ## If not set and create is true, a name is generated using the fullname template
    name:
    # serviceAccount.automountToken -- Automount API credentials for the Vector ServiceAccount
    automountToken: true

  # podAnnotations -- Set annotations on Vector Pods
  podAnnotations: {}

  # podLabels -- Set labels on Vector Pods
  podLabels:
    vector.dev/exclude: "true"

  # podPriorityClassName -- Set the priorityClassName on Vector Pods
  podPriorityClassName: ""

  # podSecurityContext -- Allows you to overwrite the default PodSecurityContext for Vector
  podSecurityContext: {}

  # securityContext -- Specify securityContext on Vector containers
  securityContext: {}

  # command -- Override Vector's default command
  command: []

  # args -- Override Vector's default arguments
  args:
    - --config-dir
    - "/etc/vector/"

  # env -- Set environment variables in Vector containers
  ## The examples below leverage examples from secrets.generic and assume no name overrides with a Release name of "vector"
  env: []
    # - name: MY_VARIABLE
    #   valueFrom:
    #     secretKeyRef:
    #       name: vector
    #       key: my_variable
    # - name: AWS_ACCESS_KEY_ID
    #   valueFrom:
    #     secretKeyRef:
    #       name: vector
    #       key: awsAcessKeyId

  # containerPorts -- Manually define Vector's Container ports, overrides automated generation of Container ports
  containerPorts: []

  # resources -- Set Vector resource requests and limits.
  resources: {}
    # requests:
    #   cpu: 200m
    #   memory: 256Mi
    # limits:
    #   cpu: 200m
    #   memory: 256Mi

  # updateStrategy -- Customize the updateStrategy used to replace Vector Pods
  ## Also used for the DeploymentStrategy for Stateless-Aggregators
  ## Valid options are used depending on the chosen role
  ## Agent (DaemonSetUpdateStrategy): https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/#DaemonSetSpec)
  ## Aggregator (StatefulSetUpdateStrategy): https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/stateful-set-v1/#StatefulSetSpec
  ## Stateless-Aggregator (DeploymentStrategy): https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/
  updateStrategy: {}
  #   type: RollingUpdate
  #   rollingUpdate:
  #     maxUnavailable: 1

  # terminationGracePeriodSeconds -- Override Vector's terminationGracePeriodSeconds
  terminationGracePeriodSeconds: 60

  # nodeSelector -- Allow Vector to be scheduled on selected nodes
  ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  nodeSelector: {}

  # tolerations -- Allow Vector to schedule on tainted nodes
  tolerations: []

  # affinity -- Allow Vector to schedule using affinity rules
  ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  affinity: {}

  ## Configuration for Vector's Service
  service:
    # service.enabled -- If true, create and use a Service resource
    enabled: true
    # service.type -- Set type of Vector's Service
    type: "ClusterIP"
    # service.annotations -- Set annotations on Vector's Service
    annotations: {}
    # service.topologyKeys -- Specify the topologyKeys field on Vector's Service spec
    ## Ref: https://kubernetes.io/docs/concepts/services-networking/service-topology/#using-service-topology
    topologyKeys: []
    #   - "kubernetes.io/hostname"
    #   - "topology.kubernetes.io/zone"
    #   - "topology.kubernetes.io/region"
    #   - "*"
    # service.ports -- Manually set Service ports, overrides automated generation of Service ports
    ports: []

  ## Configuration for Vector's Ingress
  ingress:
    # ingress.enabled -- If true, create and use an Ingress resource
    enabled: false
    # ingress.className -- Specify the ingressClassName, requires Kubernetes >= 1.18
    ## Ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
    className: ""
    # ingress.annotations -- Set annotations on the Ingress
    annotations: {}
      # kubernetes.io/ingress.class: nginx
      # kubernetes.io/tls-acme: "true"
    # ingress.hosts -- Configure the hosts and paths for the Ingress
    hosts: []
    #  - host: chart-example.local
    #    paths:
    #      - path: /
    #        pathType: ImplementationSpecific
    #        # Specify the port name or number on the Service
    #        # Using name requires Kubernetes >=1.19
    #        port:
    #          name: ""
    #          number: ""
    # ingress.tls -- Configure TLS for the Ingress
    tls: []
    #  - secretName: chart-example-tls
    #    hosts:
    #      - chart-example.local

  # existingConfigMaps -- List of existing ConfigMaps for Vector's configuration instead of creating a new one, if used requires dataDir to be set.
  # Additionally, containerPorts and service.ports should be specified based on your supplied configuration
  ## If set, this parameter takes precedence over customConfig and the chart's default configs
  existingConfigMaps: []

  # dataDir -- Specify the path for Vector's data, only used when existingConfigMaps are used
  dataDir: ""

  # customConfig -- Override Vector's default configs, if used **all** options need to be specified
  ## This section supports using helm templates to populate dynamic values
  ## Ref: https://vector.dev/docs/reference/configuration/
  customConfig: {}
    # data_dir: /vector-data-dir
    # api:
    #   enabled: true
    #   address: 127.0.0.1:8686
    #   playground: false
    # sources:
    #   vector:
    #     address: 0.0.0.0:6000
    #     type: vector
    #     version: "2"
    # sinks:
    #   stdout:
    #     type: console
    #     inputs: [vector]
    #     encoding:
    #       codec: json

  # extraVolumes -- Additional Volumes to use with Vector Pods
  extraVolumes: []

  # extraVolumeMounts -- Additional Volume to mount into Vector Containers
  extraVolumeMounts: []

  # initContainers -- Init Containers to be added to the Vector Pod
  initContainers: []

  ## Configuration for Vector's data persistence
  persistence:
    # persistence.enabled -- If true, create and use PersistentVolumeClaims
    enabled: false
    # persistence.existingClaim -- Name of an existing PersistentVolumeClaim to use
    ## Valid for Aggregator role
    existingClaim: ""
    # persistence.storageClassName -- Specifies the storageClassName for PersistentVolumeClaims
    ## Valid for Aggregator role
    # storageClassName: default

    # persistence.accessModes -- Specifies the accessModes for PersistentVolumeClaims
    ## Valid for Aggregator role
    accessModes:
      - ReadWriteOnce
    # persistence.size -- Specifies the size of PersistentVolumeClaims
    ## Valid for Aggregator role
    size: 10Gi
    # persistence.finalizers -- Specifies the finalizers of PersistentVolumeClaims
    ## Valid for Aggregator role
    finalizers:
      - kubernetes.io/pvc-protection
    # persistence.selectors -- Specifies the selectors for PersistentVolumeClaims
    ## Valid for Aggregator role
    selectors: {}

    hostPath:
      # persistence.hostPath.path -- Override path used for hostPath persistence
      ## Valid for Agent role, persistence always used for Agent role
      path: "/var/lib/vector"

  # dnsPolicy -- Specify DNS policy for Vector Pods
  ## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
  dnsPolicy: ClusterFirst

  # dnsConfig -- Specify DNS configuration options for Vector Pods
  ## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config
  dnsConfig: {}
    # nameservers:
    #   - 1.2.3.4
    # searches:
    #   - ns1.svc.cluster-domain.example
    #   - my.dns.search.suffix
    # options:
    #   - name: ndots
    #     value: "2"
    #   - name: edns0

  # livenessProbe -- Override default liveness probe settings, if customConfig is used requires customConfig.api.enabled true
  ## Requires Vector's API to be enabled
  livenessProbe: {}
    # httpGet:
    #   path: /health
    #   port: api

  # readinessProbe -- Override default readiness probe settings, if customConfig is used requires customConfig.api.enabled true
  ## Requires Vector's API to be enabled
  readinessProbe: {}
    # httpGet:
    #   path: /health
    #   port: api

  ## Configure a PodMonitor for Vector
  ## Requires the PodMonitor CRD to be installed
  podMonitor:
    # podMonitor.enabled -- If true, create a PodMonitor for Vector
    enabled: false
    # podMonitor.jobLabel -- Override the label to retrieve the job name from
    jobLabel: app.kubernetes.io/name
    # podMonitor.port -- Override the port to scrape
    port: prom-exporter
    # podMonitor.path -- Override the path to scrape
    path: /metrics
    # podMonitor.relabelings -- RelabelConfigs to apply to samples before scraping
    ## Ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
    relabelings: []
    # podMonitor.metricRelabelings -- MetricRelabelConfigs to apply to samples before ingestion
    ## Ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
    metricRelabelings: []
    # podMonitor.additionalLabels -- Adds additional labels to the PodMonitor
    additionalLabels: {}
    # podMonitor.honorLabels -- If true, honor_labels is set to true in scrape config
    ## Ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
    honorLabels: false
    # podMonitor.honorTimestamps -- If true, honor_timestamps is set to true in scrape config
    ## Ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
    honorTimestamps: true

  ## Optional built-in HAProxy load balancer
  haproxy:
    # haproxy.enabled -- If true, create a HAProxy load balancer
    enabled: false

    ## Define the HAProxy image to use
    image:
      # haproxy.image.repository -- Override default registry + name for HAProxy
      repository: haproxytech/haproxy-alpine
      # haproxy.image.pullPolicy -- HAProxy image pullPolicy
      pullPolicy: IfNotPresent
      # haproxy.image.pullSecrets -- HAProxy repository pullSecret (ex: specify docker registry credentials)
      ## Ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
      pullSecrets: []
      # haproxy.image.tag -- HAProxy image tag to use
      tag: "2.4.17"

    # haproxy.rollWorkload -- Add a checksum of the generated ConfigMap to the HAProxy Deployment
    rollWorkload: true

    # haproxy.replicas -- Set the number of HAProxy Pods to create
    replicas: 1

    serviceAccount:
      # haproxy.serviceAccount.create -- If true, create a HAProxy ServiceAccount
      create: true
      # haproxy.serviceAccount.annotations -- Annotations to add to the HAProxy ServiceAccount
      annotations: {}
      # haproxy.serviceAccount.name -- The name of the HAProxy ServiceAccount to use.
      ## If not set and create is true, a name is generated using the fullname template
      name:
      # haproxy.serviceAccount.automountToken -- Automount API credentials for the HAProxy ServiceAccount
      automountToken: true

    # haproxy.strategy -- Customize the strategy used to replace HAProxy Pods
    ## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/
    strategy: {}
      # rollingUpdate:
      #   maxSurge: 25%
      #   maxUnavailable: 25%
      # type: RollingUpdate

    # haproxy.terminationGracePeriodSeconds -- Override HAProxy's terminationGracePeriodSeconds
    terminationGracePeriodSeconds: 60

    # haproxy.podAnnotations -- Set annotations on HAProxy Pods
    podAnnotations: {}

    # haproxy.podLabels -- Set labels on HAProxy Pods
    podLabels: {}

    # haproxy.podPriorityClassName -- Set the priorityClassName on HAProxy Pods
    podPriorityClassName: ""

    # haproxy.podSecurityContext -- Allows you to overwrite the default PodSecurityContext for HAProxy
    podSecurityContext: {}
      # fsGroup: 2000

    # haproxy.securityContext -- Specify securityContext on HAProxy containers
    securityContext: {}
      # capabilities:
      #   drop:
      #   - ALL
      # readOnlyRootFilesystem: true
      # runAsNonRoot: true
      # runAsUser: 1000

    # haproxy.containerPorts -- Manually define HAProxy's Container ports, overrides automated generation of Container ports
    containerPorts: []

    ## HAProxy's Service configuration
    service:
      # haproxy.service.type -- Set type of HAProxy's Service
      type: ClusterIP
      # haproxy.service.annotations -- Set annotations on HAProxy's Service
      annotations: {}
      # haproxy.service.topologyKeys -- Specify the topologyKeys field on HAProxy's Service spec
      ## Ref: https://kubernetes.io/docs/concepts/services-networking/service-topology/#using-service-topology
      topologyKeys: []
      #   - "kubernetes.io/hostname"
      #   - "topology.kubernetes.io/zone"
      #   - "topology.kubernetes.io/region"
      #   - "*"
      # haproxy.service.ports -- Manually set HAPRoxy's Service ports, overrides automated generation of Service ports
      ports: []

    # haproxy.existingConfigMap -- Use this existing ConfigMap for HAProxy's configuration instead of creating a new one.
    # Additionally, haproxy.containerPorts and haproxy.service.ports should be specified based on your supplied configuration
    ## If set, this parameter takes precedence over customConfig and the chart's default configs
    existingConfigMap: ""

    # haproxy.customConfig -- Override HAProxy's default configs, if used **all** options need to be specified.
    # This parameter supports using Helm templates to insert values dynamically
    ## By default this chart will parse Vector's configuration from customConfig to generate HAProxy's config, this generated config
    ## can be overwritten with haproxy.customConfig
    customConfig: ""

    # haproxy.extraVolumes -- Additional Volumes to use with HAProxy Pods
    extraVolumes: []

    # haproxy.extraVolumeMounts -- Additional Volume to mount into HAProxy Containers
    extraVolumeMounts: []

    # haproxy.initContainers -- Init Containers to be added to the HAProxy Pod
    initContainers: []

    ## Configure a HorizontalPodAutoscaler for HAProxy
    autoscaling:
      # haproxy.autoscaling.enabled -- Enabled autoscaling for HAProxy
      enabled: false
      # haproxy.autoscaling.minReplicas -- Minimum replicas for HAProxy's HPA
      minReplicas: 1
      # haproxy.autoscaling.maxReplicas -- Maximum replicas for HAProxy's HPA
      maxReplicas: 10
      # haproxy.autoscaling.targetCPUUtilizationPercentage -- Target CPU utilization for HAProxy's HPA
      targetCPUUtilizationPercentage: 80
      # haproxy.autoscaling.targetMemoryUtilizationPercentage -- (int) Target memory utilization for HAProxy's HPA
      targetMemoryUtilizationPercentage:
      # haproxy.autoscaling.customMetric -- Target a custom metric
      customMetric: {}
        #  - type: Pods
        #    pods:
        #      metric:
        #        name: utilization
        #      target:
        #        type: AverageValue
        #        averageValue: 95

    # haproxy.resources -- Set HAProxy resource requests and limits.
    resources: {}
      # limits:
      #   cpu: 100m
      #   memory: 128Mi
      # requests:
      #   cpu: 100m
      #   memory: 128Mi

    # haproxy.livenessProbe -- Override default HAProxy liveness probe settings
    livenessProbe:
      tcpSocket:
        port: 1024

    # haproxy.readinessProbe -- Override default HAProxy readiness probe settings
    readinessProbe:
      tcpSocket:
        port: 1024

    # haproxy.nodeSelector -- Allow HAProxy to be scheduled on selected nodes
    ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    nodeSelector: {}

    # haproxy.tolerations -- Allow HAProxy to schedule on tainted nodes
    tolerations: []

    # haproxy.affinity -- Allow HAProxy to schedule using affinity rules
    ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
    affinity: {}
